#ifndef _SQSTD_STREAM_H_
#define _SQSTD_STREAM_H_

SQInteger _stream_readblob( HSQUIRRELVM v );
SQInteger _stream_readline( HSQUIRRELVM v );
SQInteger _stream_readn( HSQUIRRELVM v );
SQInteger _stream_writeblob( HSQUIRRELVM v );
SQInteger _stream_writen( HSQUIRRELVM v );
SQInteger _stream_seek( HSQUIRRELVM v );
SQInteger _stream_tell( HSQUIRRELVM v );
SQInteger _stream_len( HSQUIRRELVM v );
SQInteger _stream_eos( HSQUIRRELVM v );
SQInteger _stream_flush( HSQUIRRELVM v );

#define _DECL_STREAM_FUNC(name,nparams,typecheck) {_SC(#name),_stream_##name,nparams,typecheck}
SQRESULT declare_stream( HSQUIRRELVM v, const SQChar* name, SQUserPointer typetag, const SQChar* reg_name, SQRegFunction *methods, SQRegFunction *globals );
#endif
